A Fully Abstract Semantics for a Concurrent Functional Language with Monadic Types
نویسنده
چکیده
This paper presents a typed higher-order concurrent functional programming language, based on Moggi’s monadic metalanguage and Reppy’s Concurrent ML. We present an operational semantics for the language, and show that a higherorder variant of the traces model is fully abstract for maytesting. This proof uses a program logic based on Hennessy– Milner logic and Abramsky’s domain theory in logical form.
منابع مشابه
A Fully Abstract Semantics for a Higher-Order Functional Language with Nondeterministic Computation
This paper is about the relationship between the theory of monadic types and the practice of concurrent functional programming. We present a typed functional programming language CMML, with a type system based on Moggi’s monadic metalanguage, and concurrency based on Reppy’s Concurrent ML. We present an operational and denotational semantics for the language, and show that the denotational sema...
متن کاملA fully abstract semantics for a nondeterministic functional language with monadic types
This paper presents a functional programming language, based on Moggi’s monadic metalanguage. In the first part of this paper, we show how the language can be regarded as a monad on a category of signatures, and that the resulting category of algebras is equivalent to the category of computationally cartesian closed categories. In the second part, we extend the language to include a nondetermin...
متن کاملAn Implementation of Modular Monadic Semantics using Folds and Monadic Folds*
Modular monadic semantics can be implemented using folds or catamorphisms over a functor that expresses the abstract syntax of the language. By composing several functors, it is possible to obtain modular interpreters from reusable components. Monadic folds structure programs that process recursively their input and control the side effects of the output they produce. We consider that the seman...
متن کاملA Fully Abstract May Testing Semantics for Concurrent Objects
This paper provides a fully abstract semantics for a variant of the concurrent object calculus. We define may testing for concurrent object components and then characterise it using a trace semantics inspired by UML interaction diagrams. The main result of this paper is to show that the trace semantics is fully abstract for may testing. This is the first such result for a concurrent object lang...
متن کاملFully Abstract Behavioral Types for UML Components
We present a fully abstract trace semantics for UML components. This semantics is formalized in terms of a new notion of abstract behavioral types for components, providing a description of the component externally observable behavior inspired by UML sequence diagrams. Such a description abstracts from the actual implementation given, for example, by UML state-machines. Our full abstraction res...
متن کامل